/***************************************************************************
   Filename:    Brush.h
   Author:      Josh Partridge
   Description: Extends the plotter class
****************************************************************************/

#ifndef BRUSH_H_INCLUDED
#define BRUSH_H_INCLUDED

#include "plotter.h"
#include <iostream>
#include <stdio.h>

class Brush : public Plotter
{
    protected:
        COORD  coordScreen;
        SMALL_RECT rc;
        CONSOLE_CURSOR_INFO cursor;
        HANDLE hConsoleInput;

    public:
        /************************************************************************************
         Name:               Brush - default constructor
         Description:        set up window and initialize various attributes of Brush
        *************************************************************************************/
        Brush();

        /************************************************************************************
         Name:               getPos
         Description:        getter for coordScreen
         Output:
                     return: COORD representing coordScreen
        *************************************************************************************/
        COORD getPos();

        /************************************************************************************
         Name:               clearCenter
         Description:        clears a specific area of the screen that encompases everything
                             but the border
        *************************************************************************************/
        void clearCenter();

        /************************************************************************************
         Name:               clearBox
         Description:        fills an area of the screen with spaces
         Input:
                          x: int representing left side of area
                          y: int representing top side of area
                      width: int representing width of area
                     height: int representing height of area
        *************************************************************************************/
        void clearBox(int x, int y, int width, int height);

        /************************************************************************************
         Name:               clearInput
         Description:        flushes the input buffer
        *************************************************************************************/
        void clearInput();
};

#endif // BRUSH_H_INCLUDED
